草庐IT

python - Element Tree对xpath的限制

全部标签

xml - XPath:是否可以组合查询

考虑以下XML:1234DetailsDetailsDetails我需要做的是找到所有没有相应stepDetails的步骤。在上面的示例中,只会返回“4”节点。现在,我知道我可以通过查询所有步骤、遍历集合并为每次迭代执行另一个查询来做到这一点。我希望有一种方法可以只用一个查询来做到这一点。也许使用SQL的IN语句和子查询之类的东西。如有任何想法或提示,我们将不胜感激。谢谢,克里斯托夫 最佳答案 试试这个:/root/steps/step[not(.=/root/stepDetails/@step)]

python - 解析非标准 XML(CDATA 标记)

当我想使用BeautifulSoup库在Python中解析XML文档时,我遇到了一些问题。我要解析的XML文档:2011-10-1009:00:002011-10-1709:00:003500020000正如你在上面看到的,标签有点奇怪。在我看来,that(tag)不是标准的XML形式,对吧?我该如何解析这种糟糕的形式? 最佳答案 您不需要BeautifulStoneSoup或lxml。Python自带的电池可以很好地完成这项工作,而且您的XML似乎没有任何不合规之处。>>>content='''\............2011-

xml - 使用 Xpath 找到共同的 parent

我想知道是否有任何方法可以使用Xpath访问公共(public)父节点。sometextsometext2我有文本节点sometext和sometext2。有没有办法可以访问这两个节点的主要(共同父节点)?我不知道包含这些节点的xml的布局。 最佳答案 使用以下XPath1.0表达式:$v1/ancestor::*[count(.|$v2/ancestor::*)=count($v2/ancestor::*)][1]其中$v1和$v2包含两个文本节点(如果您不在XSLT中使用XPath,则必须将上述表达式中的$v1和$v2替换为XP

java - 当根标记获得 xmlns 属性时,XPath 无法正常工作

我正在尝试使用XPath解析xml文件DocumentBuilderFactorydomFactory=DocumentBuilderFactory.newInstance();domFactory.setNamespaceAware(true);//neverforgetthis!DocumentBuilderbuilder=domFactory.newDocumentBuilder();Documentdoc=builder.parse(File);XPathFactoryfactory=XPathFactory.newInstance();XPathxpath=factory.n

python - 从 ElementTree 获取更好的解析错误信息

如果我尝试解析损坏的XML,异常会显示行号。有没有办法显示XML上下文?我想查看损坏部分前后的xml标记。例子:importxml.etree.ElementTreeasETtree=ET.fromstring('')异常(exception):Traceback(mostrecentcalllast):File"tmp/foo.py",line2,intree=ET.fromstring('')File"/usr/lib/python2.7/xml/etree/ElementTree.py",line1300,inXMLparser.feed(text)File"/usr/lib/p

python - 使用 xml.etree.ElementTree 获取子节点的所有实例

我有以下XML文件作为输入:0115555555777770112222222100我想输出dialledDigits的所有值。但是,我的代码只显示dialledDigits的第一个实例。dialledDigits{}5555555我想要的输出应该包含这两个实例。dialledDigits{}5555555dialledDigits{}2222222这是我的代码importxml.etree.ElementTreeasETtree=ET.parse('as.xml')root=tree.getroot()callevent=root.find('callEvents')Moc1=cal

python - 'NoneType' 类型的参数不可迭代

我正在尝试打开一个目录,该目录包含一个特定目录中的一系列XML。在下面的代码中,我遍历了每个XML文档,并设置了一些“if语句”来读取XML中的文本,查找关键字并替换它们,然后将新文件写入新位置。运行脚本时出现以下错误:Tracebackinfo:File"Z:\ESRI\Python\TestScripts\ElementTree6.py",line62,inif"%begdate%"inelement.text:...错误信息:argumentoftype'NoneType'isnotiterable我已将目录硬编码为一个特定的XML,当我运行if语句时,它们工作正常。当我尝试设置

java - 如何在 Xpath 中获取节点值 - Java

我有一段XML看起来像这样:tag:example.com,2005:Release/3435972012-04-10T11:29:19Z2012-04-10T12:04:41Zexample1我需要获取链接http://example.com/projects/example1从这个block。我不知道该怎么做。要获取项目的标题,我使用以下代码:Stringtitle1=children.item(9).getFirstChild().getNodeValue();哪里children是getChildNodes()的对象堵塞。但我不断收到NullPointerExceptions当

xml - Xpath如何获取父子的所有属性的总字符串长度?

一个相当直截了当的问题,或者我认为...select="../Store"返回包含我需要的所有节点的节点集。然后我需要计算附加到Store节点的名称属性的字符串长度。我还以为是这样的:select="string-length(../Store/@name)"但这只返回第一个节点的字符串长度。有什么想法吗? 最佳答案 在XPath2.0中使用像这样的单个表达式:sum(../Store/@name/string-length(.))这不能用单个XPath1.0表达式完成(不允许作为定位步骤的函数),因此需要托管语言的一些帮助。例如,

xml - 如何让 JDOM/XPath 忽略 namespace ?

我需要处理一个XMLDOM,最好是使用JDOM,我可以在其中对节点进行XPath搜索。我知道节点名称或路径,但我想完全忽略命名空间,因为有时文档带有命名空间,有时没有,而且我不能依赖特定值。那可能吗?怎么办? 最佳答案 /ns:foo/ns:bar/@baz成为/*[local-name()='foo']/*[local-name()='bar']/@baz你明白了。也不要指望它会快如闪电。 关于xml-如何让JDOM/XPath忽略namespace?,我们在StackOverflow